After the decomposition is obtained and a grouping is selected using a variety of techniques (see the Functional Singular Spectrum Analysis: Functional Time Series Decomposition webpage for more information), the user may choose to perform forecasting of the FTS. The fforecast function takes an argument of class fssa, an argument that captures the selected grouping as expressed in a list, and the forecast horizon. The function returns a list object that has the same length as the grouping argument where each entry is an fts object (see the Functional Singular Spectrum Analysis: Functional Time Series Objects and Visualization webpage for more information) built from forecasting a specified group via FSSA recurrent or FSSA vector forecasting. We note that currently, forecasting is available only for FTS variables observed over a one-dimensional domain and forecasting FTS variables observed over a two-dimensional domain is under development. The following code executes the forecasting process applied to the decompositions of the call center data to predict three weeks into the future (forecast horizon is 21 days). As a reminder the suggested grouping for the call center fts is one by itself, two with three, four with five, and six with seven.

## Call center data ##
gr_C <- list(1, 2:3, 4:5, 6:7, 1:7)
Q_C <- fforecast(U_C, gr_C, h = 21)

The following plots show the individual forecasted signals as according to the specified groups, the original FTS, and the three weeks into the future forecast using all of the suggested eigentriples of interest together. All forecasts were performed using the FSSA recurrent forecasting algorithm.

## Call center data ##
plot(Q_C[[1]], mains = "Call Center Mean Component Forecast",xlabels = "Time (6 minutes aggregated)",
ylabels = "Sqrt of Call Numbers",type="line",
xticklabels = list(c("00:00","06:00","12:00","18:00","24:00")),xticklocs =
 list(c(1,60,120,180,240)))
plot(Q_C[[2]], mains = "Call Center First Periodic Component Forecast",xlabels = "Time (6 minutes aggregated)",
ylabels = "Sqrt of Call Numbers",type="line",
xticklabels = list(c("00:00","06:00","12:00","18:00","24:00")),xticklocs =
 list(c(1,60,120,180,240)))
plot(Q_C[[3]], mains = "Call Center Second Periodic Component Forecast",xlabels = "Time (6 minutes aggregated)",
ylabels = "Sqrt of Call Numbers",type="line",
xticklabels = list(c("00:00","06:00","12:00","18:00","24:00")),xticklocs =
 list(c(1,60,120,180,240)))
plot(Q_C[[4]], mains = "Call Center Third Periodic Component Forecast",xlabels = "Time (6 minutes aggregated)",
ylabels = "Sqrt of Call Numbers",type="line",
xticklabels = list(c("00:00","06:00","12:00","18:00","24:00")),xticklocs =
 list(c(1,60,120,180,240)))
plot(Y_C, mains = c("Call Center Data Line Plot"),xlabels = "Time (6 minutes aggregated)",
ylabels = "Sqrt of Call Numbers",type="line",
xticklabels = list(c("00:00","06:00","12:00","18:00","24:00")),xticklocs =
 list(c(1,60,120,180,240)))
plot(Q_C[[5]], mains = "Call Center All Chosen Eigentriples Forecast",xlabels = "Time (6 minutes aggregated)",
ylabels = "Sqrt of Call Numbers",type="line",
xticklabels = list(c("00:00","06:00","12:00","18:00","24:00")),xticklocs =
 list(c(1,60,120,180,240)))

In the previous plots, the user can investigate the patterns present in different forecasts. In particular, the forecast using all of the chosen eigentriples together (the group consisting of eigentriples one through seven) reflects that the FSSA-based forecasting technique seems to do well in predicting the mean and periodic behaviors in the call center FTS.